A network system is generally made up of two or more end devices (e.g., computers or terminals) which communicate with one another via one or more data paths within the network. The data paths are typically made up of cables and other devices (e.g., routers, switches, repeaters, and/or terminals), all of which may affect the transfer of data across the network (e.g., delay, jitter, and/or data throughput). Larger networks (e.g., Ethernet systems) generally have more intricate data paths, and thus more factors affecting the “quality” of the network.
FIG. 1 illustrates a typical network system 100, including two devices, 110 and 120, connected to one another via a network infrastructure 150. In general, the devices 110 and 120 transfer data between one another with little or no knowledge as to the quality of the data paths traversed by the individual data packets 101. However, it may be desirable for at least one of the devices 110 or 120 to be able to determine the quality of the network infrastructure 150 at any given time. For example, suppose the network system 100 is a carrier Ethernet system. The ability to monitor the quality of the network infrastructure 150 may allow an Internet Service Provider to market its services (e.g., at a premium) with a network quality guarantee.
Prior attempts to measure the quality of the network have generally required test sets (e.g., “probes”) to be placed at both ends of the network and/or require both end devices to work in combination to measure the quality of the network. Such measurement techniques are typically performed in an “on-demand” manner, in which a specific measurement or testing session must be initiated within both end devices and/or probes. However, such processes hinder standard communications between the end devices, as the flow of user data must first be stopped in order for test packets to be (continuously) sent.
There thus remains a need for a more reliable way of determining the quality of a network. There further remains a need for a network quality measurement which may be performed regularly (e.g., continuously) without hindering the flow of user data (e.g., “real-time”).